/********************************Ext默认配置***********************************/
Ext.BLANK_IMAGE_URL='/wlan/js/extJs/resources/images/default/s.gif';
Ext.form.Field.prototype.msgTarget = 'under'; // qtip,side,title,under,[element id]



/********************************Ext重载**************************************/
Ext.override(Ext.form.CheckboxGroup, {
	/** 
	 *	重载Ext.form.CheckboxGroup的setValue方法
	 *	@param vals ：控件值，可以为数组或字符串，字符串的话必须指定分隔符参数split
	 *	@param split : 分隔符，如, & | 等
	 */
    setValue: function(vals, split) {
        var a = [];
        if (Ext.isArray(vals)) {
            a = vals;
        } else {
            a = vals.split(split);
        }
        this.items.each(function(item) {
            item.setValue(false); // reset value            
            for ( var i = 0 ; i < a.length ; i ++ ) {
                var val = a[i];
                if ( val == item.getRawValue() ) {
                    item.setValue(true);            
                }
            };
        });
    }
});
Ext.override(Ext.form.RadioGroup, {
	setValue : function(v) {
		if (this.rendered)
			this.items.each( function(item) {
				item.setValue(item.getRawValue() == v);
			});
		else
			for (k in this.items)
				this.items[k].checked = this.items[k].inputValue == v;
	}
});
/** 
 *	重载Ext.form.Field的initValue方法，控件可以使用rawValue或者value属性设置
 	通过rawValue属性设置值的话，初始化的时候不调用“不能为空”校验
 */
Ext.override(Ext.form.Field, {
	initValue : function() {
		if(this.rawValue !== undefined) {
        	this.setRawValue(this.rawValue);
        } if(this.value !== undefined) {
            this.setValue(this.value);
        }else if(!Ext.isEmpty(this.el.dom.value) && this.el.dom.value != this.emptyText){
            this.setValue(this.el.dom.value);
        }
        this.originalValue = this.getValue();
    }
});

Ext.override(Ext.data.Store , {
	toJson : function() {
		var jsonStore = '[';
		var i = 0;
		Ext.each(this.data.items, function(item) {
			jsonStore += Ext.util.JSON.encode(item.data)
			if(i != this.data.length - 1)
				jsonStore += ',';
			i++;
		});  
		jsonStore += ']';
		return jsonStore;
    }
});

/********************************Ext定义一个带上传附件的html编辑器***********************/
HTMLEditor = Ext.extend(Ext.form.HtmlEditor, {
	addImage : function() {
		var editor = this;
		var imgform = new Ext.FormPanel({
			region : 'center',
			labelWidth : 55,
			frame : true,
			bodyStyle : 'padding:5px 5px 0',
			autoScroll : true,
			border : false,
			fileUpload : true,
			items : [{
				xtype : 'textfield',
				fieldLabel : '选择文件',
				name : 'userfile',
				id : 'userfile',
				inputType : 'file',
				//allowBlank : false,
				blankText : '文件不能为空',
				//height : 23,
				anchor : '95%'
			}],
    		buttons : [{
				text : '上传',
				type : 'submit',
				handler : function() {
					if (!imgform.form.isValid()) {return;}
					imgform.form.submit({
						waitMsg : '正在上传......',
						url : 'wlan/xmlSelect!editorUpFile.jspa',
						success : function(form, action) {
							Ext.getCmp('content').setValue(Ext.getCmp('content').getValue()+'<a href="'+action.result.fileURL+'">'+action.result.fileName+'</a>');
							win.hide();
						},
						failure : function(form, action) {
							form.reset();
							if (action.failureType == Ext.form.Action.SERVER_INVALID)
							Ext.MessageBox.alert('警告',action.result.errors.msg);
						}
					});
				}
			}, {
				text : '关闭',
				type : 'submit',
				handler : function() {
					win.close(this);
				}
			}]
		});

		var win = new Ext.Window({
			title : "上传附件",
			width : 450,
			height : 180,
			modal : true,
			border : false,
			//iconCls : "picture.jpg",
			layout : "fit",
			items : imgform
		});
		win.show();
	},

	createToolbar : function(editor) {
		HTMLEditor.superclass.createToolbar.call(this, editor);
		this.tb.insertButton(16, {
			cls : "x-btn-icon",
			icon : "../images/picture.jpg",
			text : "file",
			handler : this.addImage,
			scope : this
		});
	}
});
Ext.reg('StarHtmleditor', HTMLEditor);
/********************************Ext定义一个带上传附件的html编辑器end********************/